package controllers

import (
	"demo/models"
	"fmt"
	"strconv"

	"github.com/gin-gonic/gin"
)

// 查一条
func GetUserById(c *gin.Context) {
	var model models.User
	id, err := strconv.ParseInt(c.Param("id"), 10, 64)
	if err == nil {
		model.ID = id
	}
	data, err := model.Getone(model)
	if err != nil {
		c.JSON(500, gin.H{
			// "msg":=err.Error(),
			"msg":  "该用户不存在",
			"data": nil,
		})
		return
	}

	c.JSON(200, gin.H{
		"msg":  "msc",
		"data": data,
	})

}

// 登录
func Login(c *gin.Context) {
	var model models.User
	err := c.ShouldBindJSON(&model)
	if err != nil {
		c.JSON(500, gin.H{
			"msg":  err.Error(),
			"data": nil,
		})
		return
	}

	data, err := model.Login(model)

	if err != nil {
		c.JSON(500, gin.H{
			"msg":  err.Error(),
			"data": nil,
		})
		return
	}
	userID := data.ID
	c.SetCookie("user_id", strconv.FormatInt(userID, 10), -1, "/", "", false, true)
	fmt.Println("Setting cookie with user_id:", userID)

	c.JSON(200, gin.H{
		"msg":     "登录成功",
		"user_id": userID,
		"token":   data.Token,
	})

}

// 注册
func InserUser(c *gin.Context) {
	var model models.User
	err := c.ShouldBindJSON(&model)
	if err != nil {
		c.JSON(500, gin.H{
			"msg":  err.Error(),
			"data": nil,
		})
		return
	}
	fmt.Println(model)

	data, err := model.Insert(model) //添加到数据库
	if err != nil {
		c.JSON(500, gin.H{
			"msg":  err.Error(),
			"data": nil,
		})
	}

	c.JSON(200, gin.H{
		"msg":  "msc",
		"data": data,
	})

}

// 修改
func UpdateUser(c *gin.Context) {
	var model models.User
	err := c.ShouldBindJSON(&model)
	if err != nil {
		c.JSON(500, gin.H{
			"msg":  err.Error(),
			"data": nil,
		})
		return
	}
	fmt.Println(model)

	id, err := strconv.ParseInt(c.Param("id"), 10, 64)
	if err == nil {
		model.ID = id
	}

	data, err := model.Update(model)
	if err != nil {
		c.JSON(500, gin.H{
			"msg":  err.Error(),
			"data": nil,
		})
	}
	c.JSON(200, gin.H{
		"msg":  "成功",
		"data": data,
	})

}
